<?php
	namespace app\index\controller;

	use \think\Db;

	class Address extends Base{

		public function edit(){
			// 添加、修改地址回显api
			try{
				if($this->method=='post'){


					$id=input('post.id');

					$user=$this->getUser();

					if(!$user){
						$this->json(['code'=>0,'msg'=>'你还未登录']);
					}

					$address=Db::name('address')->field('a_id id,a_name name,a_tel tel,a_sheng province,a_shi city,a_qu county,a_address addressDetail,a_default isDefault,a_code areaCode')->where(['a_id'=>$id,'a_userId'=>$user['u_id']])->find();

					return $this->data($address);
				}else{
					echo '拒绝访问';
				}
			}catch(\Exception $e){	
				return $this->err($e);
			}
		}

		public function sub(){
			/*
			处理地址添加、修改的程序
			 */
			try{
				if($this->method=='post'){

					$user=$this->getUser();

					if(!$user){
						$this->json(['code'=>0,'msg'=>'您还未登录']);
					}

					$id=input('post.id');


					$data['a_name']=htmlspecialchars(input('post.name'));

					if($data['a_name']==''){
						$this->json(['msg'=>'请输入用户名','code'=>0]);
					}

					$data['a_tel']=input('post.tel');

					if($data['a_tel']==''){
						$this->json(['code'=>0,'msg'=>'请输入手机号']);
					}

					$check = '/^(1(([35789][0-9])|(47)))\d{8}$/';

					if (!preg_match($check, $data['a_tel'])) {
						$this->json(['code'=>0,'msg'=>'请输入正确的手机号']);
					}


					$data['a_sheng']=htmlspecialchars(input('post.province'));
					// 省

					$data['a_shi']=htmlspecialchars(input('post.city'));
					// 市

					$data['a_qu']=htmlspecialchars(input('post.county'));
					// 区

					if($data['a_sheng']=='' || $data['a_shi']=='' || $data['a_qu']==''){
						$this->json(['code'=>0,'msg'=>'请选择地区']);
					}

					$data['a_address']=htmlspecialchars(input('post.addressDetail'));

					if($data['a_address']==''){
						$this->json(['code'=>0,'msg'=>'请输入详细收货地址']);
					}

					$data['a_code']=input('post.areaCode');

					$data['a_default']=(int)input('post.default');

					if($data['a_default']!=1 && $data['a_default']!=0){
						$data['a_default']=1;
					}

					$row=[];

					if($data['a_default']==1){

						/*
						如果将该地址需要设为默认地址，就去查询数据表是否有默认地址，如果有的话，就将该地址取消默认地址，让新添加的数据为默认地址
						 */

						$row=Db::name('address')->where(['a_userId'=>$user['u_id'],'a_default'=>1])->find();

					}

					if($id){

						$res=Db::name('address')->where(['a_id'=>$id])->update($data);

						if($row && $row['a_id']!=$id){

							$res2=Db::name('address')->where(['a_id'=>$row['a_id']])->update(['a_default'=>0]);

						}

					}else{

						$count=Db::name('address')->where(['a_userId'=>$user['u_id']])->count();

						if($count>=5){
							$this->json(['code'=>0,'msg'=>'您的地址数量已达上限']);
						}

						$data['a_userId']=$user['u_id'];
						
						$res=Db::name('address')->insert($data);

						if($row){

							$res2=Db::name('address')->where(['a_id'=>$row['a_id']])->update(['a_default'=>0]);
						}

						if($res){
							$this->json(['code'=>1,'msg'=>'保存成功']);
						}

						$this->json(['code'=>1,'msg'=>'保存失败']);

					}

					$this->json(['code'=>1,'msg'=>'保存成功']);

				}else{
					echo '拒绝访问';
				}
			}catch(\Exception $e){
				return $this->err($e);
			}
		}
	}
?>